import net.spreadshirt.util.Observer;

/**
 * Defines the methods required by any class that wants to be the "subject"
 * in the Observer design pattern. 
 */
interface net.spreadshirt.util.Observable {

	public function addObserver(o:Observer):Boolean;
	public function removeObserver(o:Observer):Boolean;
	public function notifyObservers(infoObj:Object):Void;
	public function clearObservers():Void;
	public function hasChanged():Boolean;
	public function setChanged():Void;
	public function clearChanged():Void;
	public function countObservers():Number;

}
